package org.javahispano.javacup.tacticas.tacticas_aceptadas.emandem;

import java.util.List;

import org.javahispano.javacup.modelo.comando.Comando;
import org.javahispano.javacup.modelo.util.Posicion;
import org.javahispano.javacup.modelo.engine.SituacionPartido;
import org.javahispano.javacup.modelo.Tactica;
import org.javahispano.javacup.modelo.TacticaDetalle;
import org.javahispano.javacup.tacticas.tacticas_aceptadas.emandem.alineaciones.Alineaciones;
import org.javahispano.javacup.tacticas.tacticas_aceptadas.emandem.configuracion.TacticaDetalleImpl;
import org.javahispano.javacup.tacticas.tacticas_aceptadas.emandem.controladores.CPU;
import org.javahispano.javacup.tacticas.tacticas_aceptadas.emandem.controladores.ControladorAlineaciones;


public class EmAndEmTactica implements Tactica {
	private Alineaciones alineaciones = new Alineaciones();
	private TacticaDetalle detalle=new TacticaDetalleImpl();
	private CPU cpu = new CPU();
	
	public TacticaDetalle getDetalle() {
		return detalle;
	}

	public Posicion[] getPosicionSaca(final SituacionPartido situacionPartido) {
		ControladorAlineaciones.setProximaIteracionCambioAlineacion(0);
		return this.alineaciones.getAlineacion5();
	}

	public Posicion[] getPosicionRecive(final SituacionPartido situacionPartido) {
		ControladorAlineaciones.setProximaIteracionCambioAlineacion(0);
		return this.alineaciones.getAlineacion6();
	}

	//Lista de comandos a ejecutar.
	@Override
	public List<Comando> ejecutar(final SituacionPartido situacionPartido) {
		return this.cpu.getComandosEjecutar(situacionPartido);
	}
}